﻿using System.Collections.Generic;

namespace CID.Domain.Operations
{
    public interface IServer : INamedEntity
    {
        bool Enabled { get; set; }
        string Address { get; set; }

        ILocation Location { get; set; }
        IEnumerable<IServerAssignment> Assignments { get; }

        void Assign(IEnvironment environment, IServerRole serverRole);
        void Unassign(IEnvironment environment, IServerRole serverRole);

        void AddAssignment(IServerAssignment assignment);
        void RemoveAssignment(IServerAssignment assignment);
    }
}
